'''
@Company: TWL
@Author: xue jian
@Email: xuejian@kanzhun.com
@Date: 2020-04-09 19:44:55
'''
# -*- coding: UTF-8 -*-

##老板端特征
boss_categorical_features = ["job_workyears", "job_degree", "title_type", "job_overseas_tag", "boss_position", "boss_cmp_level", "boss_city"]
boss_continuous_features = ["jh", "jl", "job_f1_addf_num_1d3", "job_f1_addf_rate_1d3", "job_f1_pas_resp_rate_1d3"]
boss_vector_features = ["job_title_w2v", "job_major_w2v", "job_school_w2v", "boss_company_pref_w2v", "boss_w2v_pref_int", "job_skill_w2v"]

##牛人端特征
geek_categorical_features = ["geek_gender", "geek_degree", "geek_apply_status", "geek_school_level", "geek_cmp_level", "geek_overseas_tag", "geek_major", "geek_position", "geek_city", "geek_workyears"]
geek_continuous_features = ["geek_notify_num_1d3", "geek_ret_num_1d3", "geek_chat_s2_num_1d7", "geek_chat_s5_num_1d7", "exp_list_num_1d3", "exp_pas_addf_num_1d3", "exp_pas_addf_num_4d7", "exp_resp_num_1d3", "exp_resp_rate_1d3",
                              "exp_f1_pas_det_list_rate_1d7", "exp_f1_pas_addf_det_rate_1d7", "geek_min_active_tdiff", "exp_det_num_24h", "exp_pas_addf_num_24h", "exp_resp_rate_24h", "eh", "el", "exp_f1_pas_view_num_1d7", "exp_register_tdiff", "geek_workdist_sensi", "exp_min_active_tdiff"]
geek_vector_features = ["geek_title_w2v", "geek_major_w2v", "geek_school_w2v", "geek_company_w2v", "geek_w2v_pref_int", "geek_skill_w2v"]

##交叉特征
cross_continuous_features = ["b2g_work_distance", "b2g_city_addf_rate", "g2b_position_addf_rate", "b2g_position_addf_rate"]

fea_name = "boss_l1code,boss_l2code,boss_position,boss_combine_code,boss_city,geek_position,geek_city,geek_combine_code,boss_id,job_id,geek_id,exp_id,page,rank,list_time,deal_time,lid,pk_class,sessionid,deal_type,jl,jh,job_workyears,job_degree,geek_gender,geek_degree,geek_school_level,geek_cmp_level,geek_apply_status,geek_workyears,el,eh,b2g_degree_match,b2g_degree_rel_match,b2g_salary_match,b2g_salary_rel_match,b2g_workyears_match,b2g_workyears_rel_match,b2g_static_match,b2g_static_rel_match,geek_chat_s2_num_1d7,b2g_skill_match,b2g_w2v_pref_gof,b2g_w2v_orig_gof,b2g_pastpos_addf_rate,b2g_school_level_gof,b2g_school_type1_gof,b2g_school_type2_gof,b2g_fresh_graduate_gof,b2g_degree_gof,b2g_gender_gof,b2g_apply_status_gof,geek_min_active_tdiff,geek_min_chat_tdiff,exp_det_num_24h,exp_pas_addf_num_24h,b2g_salary_gof,b2g_workyears_gof,b2g_cmp_level_gof,b2g_pos_major_match,b2g_pos_workyears_major_match,b2g_pos_skill_match,b2g_position_similarity,boss_cmp_level,b2g_overseas_match,job_overseas_tag,geek_overseas_tag,b2g_resp_workyears_gof,b2g_resp_school_level_gof,g2b_cmp_level_gof,g2b_degree_gof,g2b_salary_gof,g2b_workyears_gof,g2b_scale_gof,g2b_stage_gof,g2b_title_type_gof,exp_register_tdiff,geek_complete_tdiff,b2g_title_w2v_orig_gof,b2g_major_w2v_gof,b2g_school_w2v_gof,b2g_work_distance,geek_workdist_sensi,b2g_company_gof,exp_f1_pas_cp_addf_rate_1d7,geek_simpos_workyears,geek_degree_new,boss_title_type,g2b_w2v_pref_gof,g2b_w2v_orig_gof,b2g_cdssm_gof,b2g_pjenn_gof,exp_min_active_tdiff,b2g_pos_pastpos_similarity,b2g_age_gof,b2g_position_gof,b2g_pos_similarity,b2g_position_addf_rate,g2b_position_addf_rate,b2g_city_addf_rate,job_plist_times_14d,job_addfchat_times_7d,job_success_times_7d,job_det_times_7d,job_addf_pchat_times_7d,job_addf_success_times_7d,job_addf_times_7d,job_addfchat_times_2d,job_success_times_2d,job_det_times_2d,job_addf_pchat_times_2d,job_addf_success_times_2d,job_addf_times_2d,job_pdet_times_14d,job_paddf_times_14d,job_paddfchat_times_7d,job_psuccess_times_7d,job_pdet_times_7d,job_paddf_pchat_times_7d,job_paddf_success_times_7d,job_paddf_times_7d,job_paddfchat_times_2d,job_psuccess_times_2d,job_pdet_times_2d,job_paddf_pchat_times_2d,job_paddf_success_times_2d,boss_addfchat_times_2d,boss_det_times_2d,boss_addf_pchat_times_2d,boss_addf_success_times_2d,boss_addf_times_2d,boss_paddfchat_times_2d,boss_psuccess_times_2d,boss_pdet_times_2d,boss_paddf_pchat_times_2d,boss_paddf_success_times_2d,job_paddf_times_2d,boss_paddf_times_2d,geek_plist_times_14d,geek_addfchat_times_7d,geek_success_times_7d,geek_det_times_7d,geek_addf_pchat_times_7d,geek_addf_success_times_7d,geek_addf_times_7d,geek_addfchat_times_2d,geek_success_times_2d,geek_det_times_2d,geek_addf_pchat_times_2d,geek_addf_success_times_2d,geek_addf_times_2d,geek_pdet_times_14d,geek_paddf_times_14d,geek_paddfchat_times_7d,geek_psuccess_times_7d,geek_pdet_times_7d,geek_paddf_pchat_times_7d,geek_paddf_success_times_7d,geek_paddf_times_7d,geek_paddfchat_times_2d,geek_psuccess_times_2d,geek_pdet_times_2d,geek_paddf_pchat_times_2d,geek_paddf_success_times_2d,geek_paddf_times_2d,boss_view_geek_14d,boss_det_geek_14d,boss_pview_geek_14d,boss_pdet_geek_14d,geek_addfchat_rate_2d,geek_success_rate_2d,geek_addf_pchat_rate_2d,geek_addf_success_rate_2d,geek_addf_rate_2d,geek_paddfchat_rate_2d,geek_psuccess_rate_2d,geek_paddf_pchat_rate_2d,geek_paddf_success_rate_2d,geek_paddf_rate_2d,geek_addfchat_rate_7d,geek_success_rate_7d,geek_addf_pchat_rate_7d,geek_addf_success_rate_7d,geek_addf_rate_7d,geek_paddfchat_rate_7d,geek_psuccess_rate_7d,geek_paddf_pchat_rate_7d,geek_paddf_success_rate_7d,geek_paddf_rate_7d,geek_pdet_rate_14d,geek_paddf_rate_14d,job_addfchat_rate_2d,job_success_rate_2d,job_addf_pchat_rate_2d,job_addf_success_rate_2d,job_addf_rate_2d,job_paddfchat_rate_2d,job_psuccess_rate_2d,job_paddf_pchat_rate_2d,job_paddf_success_rate_2d,job_paddf_rate_2d,job_addfchat_rate_7d,job_success_rate_7d,job_addf_pchat_rate_7d,job_addf_success_rate_7d,job_addf_rate_7d,job_paddfchat_rate_7d,job_psuccess_rate_7d,job_paddf_pchat_rate_7d,job_paddf_success_rate_7d,job_paddf_rate_7d,job_pdet_rate_14d,job_paddf_rate_14d,boss_addfchat_rate_2d,boss_addf_pchat_rate_2d,boss_addf_success_rate_2d,boss_addf_rate_2d,boss_paddfchat_rate_2d,boss_psuccess_rate_2d,boss_paddf_pchat_rate_2d,boss_paddf_success_rate_2d,boss_paddf_rate_2d,b2g_airbnb_emb_gof_int,geek_fresh_graduate,geek_work_p,geek_school_type1,geek_school_type2,geek_major,geek_rev_work_year,geek_business_code,geek_job_hopping,geek_school_ids,boss_company,boss_bussiness_id,boss_district_code,boss_comp_industry,boss_comp_scale,boss_comp_stage,boss_subway_line_id,boss_subway_station_id,b2g_workyears_recent10,b2g_cmp_level_recent10,b2g_school_level_recent10,b2g_school_type1_recent10,b2g_school_type2_recent10,b2g_degree_recent10,b2g_gender_recent10,b2g_apply_status_recent10,b2g_salary_recent10,boss_addf_geek_recent10,boss_addf_expect_recent10,job_addf_geek_recent10,job_addf_expect_recent10,boss_success_geek_recent10,platform,day_of_week,job_pas_addf_num_24h,job_list_num_1d3,job_det_num_24h,boss_company_kwid,b2g_revage_recent10,b2g_position_recent10,b2g_paspos_recent10,geek_school_code,geek_age,geek_rev_age,geek_latest_work_position_id,geek_l1code,geek_l2code"
#fea_name = "boss_l1code,boss_l2code,boss_position,boss_combine_code,boss_city,geek_position,geek_city,geek_combine_code,boss_id,job_id,geek_id,exp_id,page,rank,list_time,deal_time,lid,sessionid,deal_type,jl,jh,job_workyears,job_degree,geek_gender,geek_degree,geek_school_level,geek_cmp_level,geek_apply_status,geek_workyears,el,eh,b2g_degree_match,b2g_degree_rel_match,b2g_salary_match,b2g_salary_rel_match,b2g_workyears_match,b2g_workyears_rel_match,b2g_static_match,b2g_static_rel_match,geek_chat_s2_num_1d7,b2g_skill_match,b2g_w2v_pref_gof,b2g_w2v_orig_gof,b2g_pastpos_addf_rate,b2g_school_level_gof,b2g_school_type1_gof,b2g_school_type2_gof,b2g_fresh_graduate_gof,b2g_degree_gof,b2g_gender_gof,b2g_apply_status_gof,geek_min_active_tdiff,geek_min_chat_tdiff,exp_det_num_24h,exp_pas_addf_num_24h,b2g_salary_gof,b2g_workyears_gof,b2g_cmp_level_gof,b2g_pos_major_match,b2g_pos_workyears_major_match,b2g_pos_skill_match,b2g_position_similarity,boss_cmp_level,b2g_overseas_match,job_overseas_tag,geek_overseas_tag,b2g_resp_workyears_gof,b2g_resp_school_level_gof,g2b_cmp_level_gof,g2b_degree_gof,g2b_salary_gof,g2b_workyears_gof,g2b_scale_gof,g2b_stage_gof,g2b_title_type_gof,exp_register_tdiff,geek_complete_tdiff,b2g_title_w2v_orig_gof,b2g_major_w2v_gof,b2g_school_w2v_gof,b2g_work_distance,geek_workdist_sensi,b2g_company_gof,exp_f1_pas_cp_addf_rate_1d7,geek_simpos_workyears,geek_degree_new,boss_title_type,g2b_w2v_pref_gof,g2b_w2v_orig_gof,b2g_cdssm_gof,b2g_pjenn_gof,exp_min_active_tdiff,b2g_pos_pastpos_similarity,b2g_age_gof,b2g_position_gof,b2g_pos_similarity,b2g_position_addf_rate,g2b_position_addf_rate,b2g_city_addf_rate,job_plist_times_14d,job_addfchat_times_7d,job_success_times_7d,job_det_times_7d,job_addf_pchat_times_7d,job_addf_success_times_7d,job_addf_times_7d,job_addfchat_times_2d,job_success_times_2d,job_det_times_2d,job_addf_pchat_times_2d,job_addf_success_times_2d,job_addf_times_2d,job_pdet_times_14d,job_paddf_times_14d,job_paddfchat_times_7d,job_psuccess_times_7d,job_pdet_times_7d,job_paddf_pchat_times_7d,job_paddf_success_times_7d,job_paddf_times_7d,job_paddfchat_times_2d,job_psuccess_times_2d,job_pdet_times_2d,job_paddf_pchat_times_2d,job_paddf_success_times_2d,boss_addfchat_times_2d,boss_det_times_2d,boss_addf_pchat_times_2d,boss_addf_success_times_2d,boss_addf_times_2d,boss_paddfchat_times_2d,boss_psuccess_times_2d,boss_pdet_times_2d,boss_paddf_pchat_times_2d,boss_paddf_success_times_2d,job_paddf_times_2d,boss_paddf_times_2d,geek_plist_times_14d,geek_addfchat_times_7d,geek_success_times_7d,geek_det_times_7d,geek_addf_pchat_times_7d,geek_addf_success_times_7d,geek_addf_times_7d,geek_addfchat_times_2d,geek_success_times_2d,geek_det_times_2d,geek_addf_pchat_times_2d,geek_addf_success_times_2d,geek_addf_times_2d,geek_pdet_times_14d,geek_paddf_times_14d,geek_paddfchat_times_7d,geek_psuccess_times_7d,geek_pdet_times_7d,geek_paddf_pchat_times_7d,geek_paddf_success_times_7d,geek_paddf_times_7d,geek_paddfchat_times_2d,geek_psuccess_times_2d,geek_pdet_times_2d,geek_paddf_pchat_times_2d,geek_paddf_success_times_2d,geek_paddf_times_2d,boss_view_geek_14d,boss_det_geek_14d,boss_pview_geek_14d,boss_pdet_geek_14d,geek_addfchat_rate_2d,geek_success_rate_2d,geek_addf_pchat_rate_2d,geek_addf_success_rate_2d,geek_addf_rate_2d,geek_paddfchat_rate_2d,geek_psuccess_rate_2d,geek_paddf_pchat_rate_2d,geek_paddf_success_rate_2d,geek_paddf_rate_2d,geek_addfchat_rate_7d,geek_success_rate_7d,geek_addf_pchat_rate_7d,geek_addf_success_rate_7d,geek_addf_rate_7d,geek_paddfchat_rate_7d,geek_psuccess_rate_7d,geek_paddf_pchat_rate_7d,geek_paddf_success_rate_7d,geek_paddf_rate_7d,geek_pdet_rate_14d,geek_paddf_rate_14d,job_addfchat_rate_2d,job_success_rate_2d,job_addf_pchat_rate_2d,job_addf_success_rate_2d,job_addf_rate_2d,job_paddfchat_rate_2d,job_psuccess_rate_2d,job_paddf_pchat_rate_2d,job_paddf_success_rate_2d,job_paddf_rate_2d,job_addfchat_rate_7d,job_success_rate_7d,job_addf_pchat_rate_7d,job_addf_success_rate_7d,job_addf_rate_7d,job_paddfchat_rate_7d,job_psuccess_rate_7d,job_paddf_pchat_rate_7d,job_paddf_success_rate_7d,job_paddf_rate_7d,job_pdet_rate_14d,job_paddf_rate_14d,boss_addfchat_rate_2d,boss_addf_pchat_rate_2d,boss_addf_success_rate_2d,boss_addf_rate_2d,boss_paddfchat_rate_2d,boss_psuccess_rate_2d,boss_paddf_pchat_rate_2d,boss_paddf_success_rate_2d,boss_paddf_rate_2d,b2g_airbnb_emb_gof_int,geek_fresh_graduate,geek_work_p,geek_school_type1,geek_school_type2,geek_major,geek_rev_work_year,geek_business_code,geek_job_hopping,geek_school_ids,boss_company,boss_bussiness_id,boss_district_code,boss_comp_industry,boss_comp_scale,boss_comp_stage,boss_subway_line_id,boss_subway_station_id,b2g_workyears_recent10,b2g_cmp_level_recent10,b2g_school_level_recent10,b2g_school_type1_recent10,b2g_school_type2_recent10,b2g_degree_recent10,b2g_gender_recent10,b2g_apply_status_recent10,b2g_salary_recent10,boss_addf_geek_recent10,boss_addf_expect_recent10,job_addf_geek_recent10,job_addf_expect_recent10,boss_success_geek_recent10,day_of_week,b2g_position_similarity_sx,b2g_pos_major_match_sx"

def get_fea_index():
    fea_name_list = fea_name.split(',')
    fea_index = {}
    for i in range(len(fea_name_list)):
        fea_index[fea_name_list[i]] = i
    return fea_index


category_int_fea = ["geek_position", "geek_combine_code", "geek_degree_new", "geek_gender", "geek_degree", "geek_apply_status", "geek_workyears", "geek_school_level", "geek_cmp_level", "geek_overseas_tag", "geek_city", "geek_major", "boss_position", "geek_rev_work_year", "boss_l1code", "boss_l2code", "geek_l1code", "geek_l2code", "geek_school_type1", "geek_school_type2", "geek_rev_age","boss_comp_scale", 
                    "boss_combine_code", "boss_city", "job_workyears", "job_degree", "boss_cmp_level", "job_overseas_tag", "boss_title_type", "geek_work_position_recent1", "geek_work_position_recent2", "geek_work_position_recent3", "geek_latest_work_position_id", "geek_latest_work_cmp_kw_id", "boss_cmp_kw_id"]

list_fea = ["b2g_workyears_recent10", "b2g_cmp_level_recent10", "b2g_school_level_recent10", "b2g_school_type1_recent10", "b2g_school_type2_recent10", "b2g_degree_recent10", "b2g_gender_recent10", "b2g_apply_status_recent10", "b2g_salary_recent10", "b2g_revage_recent10", "b2g_position_recent10", "b2g_paspos_recent10"]
#           "b2g_workyears_recent5", "b2g_cmp_level_recent5", "b2g_school_level_recent5", "b2g_school_type1_recent5", "b2g_school_type2_recent5", "b2g_degree_recent5", "b2g_gender_recent5", "b2g_apply_status_recent5", "b2g_salary_recent5"]

def get_fea_group():
    fea_group = {}
    fea_name_list = fea_name.split(',')
    for fea in fea_name_list:
        if fea in category_int_fea:
            fea_group[fea] = 0
        elif fea in list_fea:
            fea_group[fea] = 2
        else:
            fea_group[fea] = 1
    return fea_group


cate_fea_dict = {'geek_major': [752, 0, 559, 1860, 2160, 1925, 294, 661, 849, 247, 362, 1298, 2770, 86, 569, 757, 2297, 1592, 2772, 1861, 2315, 565, 444, 1718, 1048, 667, 846, 2300, 2085, 677, 1715, 1688, 2284, 2243, 249, 968, 1791, 471, 1853, 47, 2450, 2362, 109, 2598, 1510, 78, 1481, 666, 2508, 1313, 827, 1838, 2517, 400, 1351, 1671, 2653, 2340, 2619, 2275, 1140, 2219, 699, 1077, 546, 480, 1565, 987, 1208, 312, 963, 852, 2606, 2447, 676, 77, 2522, 853, 844, 162, 1921, 975, 582, 1167, 767, 2240, 2018, 2492, 1597, 2298, 1049, 596, 256, 815, 979, 2079, 473, 1521, 452, 700, 1036, 514, 60, 1883, 664, 2126, 1575, 2195, 1157, 857, 698, 1770, 527, 1115, 1605, 1747, 358, 2301, 1615, 862, 2257, 517, 1794, 380, 1018, 1072, 892, 2049, 2499, 535, 537, 51, 264, 225, 2476, 1613, 1381, 2389, 588, 1667, 1532, 2765, 948, 2564, 2131, 2534, 1926, 261, 2547, 2166, 48, 132, 2021, 2569, 313, 2242, 1854, 464, 2463, 27, 833, 2687, 600, 155, 748, 669, 1312, 1584, 805, 2119, 2512, 1753, 1113, 910, 411, 1864, 1104, 2791, 2241, 2038, 2197, 2238, 2746, 2460, 2504, 1047, 1, 2466, 701, 1352, 2127, 2500, 1314, 983, 2530, 1635, 2069, 2702, 1101, 1064, 262, 604, 2025, 2513, 118, 2227, 950, 1984, 1358, 775, 674, 969, 2766, 1099, 1263, 1005, 2660, 2760, 1495, 2622, 481, 1449, 2461, 1719, 1952, 1663, 2557, 52, 396, 165, 2452, 2309, 1742, 359, 1345, 164, 1500, 1347, 80, 160, 402, 2621, 1712, 2733, 175, 1311, 2458, 1708, 141, 533, 2078, 804, 1397, 947, 681, 2378, 154, 363, 659, 72, 2507, 2084, 2609, 398, 2636, 1888, 864, 751, 193, 2200, 151, 148, 2637, 594, 742, 246, 360, 66, 2201, 2558, 624, 1294, 2615, 2258, 1080, 1138, 40, 2054, 199, 858, 761, 475, 1438, 863, 663, 2281, 560, 1316, 2509, 1484, 2173, 468, 871, 1243, 799, 1388, 2657, 232, 1777, 597, 566, 1454, 269, 1301, 1473, 2207, 93, 1395, 2081, 1019, 2422, 1836, 1149, 1924, 1322, 2211, 505, 2805, 1289, 2459, 1353, 129, 365, 2501, 2086, 1826, 466, 2439, 670, 385, 2311, 2005, 907, 1245, 214, 1844, 1207, 82, 2511, 105, 378, 967, 754, 1053, 819, 273, 2178, 2485, 643, 1131, 7, 622, 2412, 2137, 197, 2172, 1238, 1636, 323, 1695, 1774, 110, 1571, 1092, 2379, 2723, 403, 1268, 900, 995, 1576, 1154, 2072, 2107, 401, 1579, 1677, 2215, 71, 14, 2670, 1418, 982, 988, 201, 2387, 2404, 750, 24, 2798, 962, 2552, 641, 645, 1112, 2269, 2618, 2679, 2224, 128, 2165, 2074, 1828, 2734, 1705, 2747, 1867, 156, 2735, 691, 2561, 2048, 83, 1333, 304, 1160, 2620, 1772, 115, 469, 142, 25, 419, 554, 2162, 1370, 2560, 293, 2023, 1159, 2376, 2728, 1051, 2196, 2480, 2680, 901, 1257, 2435, 769, 1067, 2002, 2652, 2698, 2100, 1776, 709, 887, 2757, 2566, 198, 1578, 97, 1215, 1315, 34, 584, 1423, 585, 2613, 342, 355, 1421, 1084, 202, 1424, 573, 2741, 107, 798, 652, 717, 2488, 440, 2199, 2774, 2562, 504, 1282, 2335, 2405, 1350, 1647, 1811, 881, 2784, 416, 2580, 2055, 1332, 1930, 925, 711, 1187, 1855, 1850, 934, 1966, 727, 2277, 1156, 2316, 3, 38, 867, 1894, 2088, 2515, 1406, 2456, 211, 2051, 696, 2414, 1531, 173, 2801, 2282, 1082, 1095, 192, 298, 2576, 2705, 2469, 2427, 1790, 2097, 126, 369, 1657, 2761, 2690, 2262, 356, 996, 575, 1922, 2484, 1722, 2324, 166, 1427, 1003, 2745, 1547, 79, 2470, 543, 36, 2526, 902, 1973, 2167, 1909, 497, 2812, 274, 2286, 689, 345, 1693, 2307, 1818, 2161, 957, 903, 1911, 2764, 2120, 1458, 2230, 2056, 1810, 2600, 221, 1228, 1976, 2349, 869, 157, 1637, 1672, 15, 2411, 855, 368, 1365, 1585, 2751, 2305, 1188, 2171, 1714, 467, 1239, 2020, 2759, 502, 1404, 2635, 834, 1470, 595, 125, 2768, 122, 2163, 213, 960, 1905, 2671, 536, 1858, 1147, 520, 2533, 399, 1280, 28, 745, 474, 2351, 1574, 1978, 828, 477, 972, 1158, 2753, 1522, 1308, 2689, 21, 2202, 306, 2729, 1955, 1117, 1146, 2740, 1096, 2744, 6, 263, 1465, 372, 2194, 1405, 2198, 2441, 2108, 1116, 2623, 281, 1723, 919, 1348, 182, 2502, 1621, 2434, 1783, 492, 1612, 1062, 756, 779, 2420, 2738, 1278, 472, 1083, 159, 2510, 2073, 725, 2217, 2388, 578, 1816, 2037, 2668, 1100, 568, 1627, 878, 2006, 354, 1058, 1261, 1183, 970, 114, 2239, 1318, 2094, 1785, 531, 1700, 1032, 2007, 2593, 1756, 479, 542, 2285, 1447, 660, 2804, 310, 2554, 2041, 1865, 1977, 278, 1913, 1015, 1357, 1143, 1942, 823, 1694, 1196, 2068, 1583, 2382, 200, 2462, 153, 2210, 1218, 839, 1328, 127, 1738, 526, 1819, 1678, 1685, 134, 1075, 137, 289, 1996, 12, 1233, 212, 170, 1901, 616, 1105, 612, 1884, 61, 1413, 1059, 909, 2244, 2393, 101, 493, 675, 654, 2724, 679, 488, 1383, 2259, 525, 2438, 138, 2514, 1305, 859, 1346, 1039, 1851, 1607, 1590, 2076, 2590, 2785, 366, 2614, 687, 753, 627, 2118, 1804, 1230, 1331, 301, 929, 2148, 1960, 74, 2464, 337, 918, 2718, 905, 2135, 2299, 1896, 2231, 2180, 636, 912, 1304, 2372, 621, 414, 1949, 826, 438, 69, 314, 1846, 2134, 1499, 2095, 131, 1443, 2457, 2158, 2381, 685, 384, 1540, 1021, 2532, 2506, 550, 2611, 1111, 1771, 413, 1102, 2121, 1674, 390, 2310, 2754, 1824, 1781, 2472, 2136, 2627, 889, 482, 81, 2385, 296, 1903, 734, 2183, 1912, 2810, 984, 2727, 220, 254, 2505, 2256, 2714, 516, 564, 1947, 2266, 143, 1849, 1276, 1046, 2168, 2260, 939, 1409, 2677, 1726, 2696, 2446, 2478, 432, 2115, 914, 227, 2695, 1330, 2357, 1044, 1455, 2035, 1789, 2739, 618, 586, 2232, 1506, 2047, 223, 108, 2296, 1941, 1939, 2164, 1310, 1843, 1993, 1303, 635, 2287, 1871, 1869, 2437, 361, 465, 1368, 2294, 23, 2204, 668, 2103, 2683, 2042, 1216, 990, 1190, 865, 245, 1675, 2272, 1205, 130, 2813, 790, 977, 1617, 1934, 35, 1593, 1568, 2212, 2039, 577, 538, 2373, 2602, 952, 801, 662, 976, 144, 277, 2353, 1974, 341, 2203, 2113, 684, 672, 640, 1599, 1548, 1367, 2516, 1823, 2363, 1821, 311, 726, 2290, 2473, 2346, 994, 1089, 614, 1740, 2156, 2742, 1856, 1065, 2692, 646, 2592, 958, 2748, 1812, 1054, 1017, 778, 2402, 2348, 2604, 2521, 1114, 1204, 111, 70, 2647, 428, 2193, 796, 1288, 1241, 630, 2486, 1137, 1380, 2649, 2563, 716, 338, 2371, 1841, 1734, 2206, 2811, 1900, 1212, 1197, 2228, 2736, 1444, 2098, 1185, 2361, 2475, 1632, 1684, 845, 1307, 2553, 1189, 556, 2655, 683, 1745, 961, 1379, 1639, 2523, 1378, 1027, 1721, 1798, 825, 446, 1023, 2395, 599, 1132, 620, 1435, 219, 2654, 2341, 1430, 1255, 1748, 257, 1556, 2139, 1446, 2145, 316, 2293, 1989, 1746, 1459, 1815, 59, 810, 62, 1676, 20, 1656, 1870, 2599, 673, 697, 187, 1336, 1411, 2075, 1957, 1269, 589, 2632, 158, 557, 418, 2144, 1988, 2099, 1219, 1948, 532, 2153, 1624, 2383, 1043, 2063, 1286, 1561, 231, 2444, 2482, 1842, 2445, 1079, 1434, 1094, 1778, 744, 2570, 955, 2681, 740, 1893, 1259, 1237, 2043, 2719, 2498, 420, 91, 895, 1938, 1169, 1953, 1246, 601, 2771, 1173, 224, 1573, 2797, 287, 2155, 1640, 980, 613, 2663, 2251, 2625, 75, 216, 1325, 1698, 1751, 2707, 1126, 1551, 2503, 590, 102, 387, 275, 1026, 2581, 319, 1266, 2087, 1150, 2448, 84, 1297, 2524, 2442, 1703, 349, 1834, 690, 1192, 1964, 1792, 4, 547, 291, 2344, 2658, 807, 820, 1273, 817, 593, 1214, 335, 1752, 847, 1010, 1182, 2352, 1641, 1809, 2782, 1390, 1827, 706, 1433, 210, 347, 1060, 1788, 530, 2528, 1377, 2271, 770, 2004, 2646, 1564, 2633, 1489, 364, 1512, 1090, 741, 523, 1335, 2795, 1735, 1375, 295, 2659, 1487, 539, 388, 941, 880, 1553, 179, 292, 2495, 2555, 1530, 2559, 1118, 252, 1085, 1135, 1539, 1056, 2374, 1732, 626, 255, 904, 1750, 351, 1604, 2497, 610, 1787, 190, 688, 1733, 2050, 426, 1655, 836, 1670, 2519, 250, 239, 605, 708, 838, 1876, 1151, 2308, 2722, 2706, 1223, 1799, 2170, 2216, 2773, 2496, 443, 1866, 2610, 2053, 2688, 2489, 1442, 1221, 2013, 860, 704, 242, 891, 5, 1768, 693, 1754, 283, 959, 10, 1441, 2732, 1193, 1152, 434, 2279, 1550, 1240, 324, 930, 2129, 501, 720, 2292, 1971, 898, 886, 2573, 506, 1979, 997, 2650, 759, 2090, 921, 1963, 1195, 2579, 1426, 1679, 1863, 106, 1242, 1940, 2398, 1179, 1570, 648, 989, 270, 2017, 184, 908, 587, 2209, 707, 1425, 1527, 2539, 2454, 1972, 1320, 2471, 1646, 830, 942, 686, 288, 2323, 854, 2775, 135, 1516, 1372, 1074, 1384, 1478, 1034, 76, 1502, 2306, 104, 455, 1129, 94, 1885, 2128, 1660, 238, 489, 1743, 268, 1482, 1235, 357, 1392, 1338, 1202, 1507, 2179, 180, 459, 722, 1832, 1709, 1262, 2809, 1666, 1419, 2648, 1536, 634, 2713, 2337, 927, 1744, 2355, 1145, 1014, 500, 2225, 2749, 1572, 1097, 1518, 718, 2808, 218, 328, 1200, 2789, 309, 602, 334, 2587, 168, 747, 386, 549, 2583, 2743, 792, 1139, 1153, 2329, 1076, 88, 435, 1975, 487, 1582, 2205, 1166, 784, 185, 916, 2255, 2111, 965, 598, 1086, 800, 2537, 555, 2122, 2077, 591, 1412, 2418, 992, 2380, 1673, 2778, 2330, 2595, 2218, 1337, 234, 2318, 1716, 1130, 813, 1107, 1886, 1659, 1385, 1091, 936, 2246, 1958, 1387, 2303, 2631, 638, 2667, 558, 1767, 2060, 2332, 2336, 2314, 427, 2786, 1661, 981, 2082, 1616, 2787, 911, 1761, 515, 1932, 2799, 2250, 321, 528, 2556, 2425, 2730, 229, 1231, 2662, 2123, 2138, 222, 1428, 1880, 2716, 244, 1013, 348, 1284, 1514, 152, 389, 567, 2767, 1757, 935, 300, 2758, 2483, 758, 1525, 2034, 1837, 956, 1594, 382, 2026, 1654, 1520, 552, 1689, 705, 736, 1786, 2694, 1882, 317, 2585, 1933, 2645, 2423, 2639, 2245, 2016, 1889, 945, 2776, 29, 1946, 483, 884, 1833, 1945, 571, 2386, 2365, 1535, 915, 1537, 259, 1907, 1730, 545, 913, 2529, 1845, 937, 339, 1227, 2265, 2317, 1497, 1839, 2756, 253, 65, 1462, 611, 658, 2802, 730, 64, 2184, 2140, 1868, 580, 1007, 2571, 2110, 95, 2141, 1339, 318, 583, 1472, 1891, 266, 928, 1696, 1144, 2675, 494, 2226, 395, 1180, 2550, 738, 2431, 462, 764, 1486, 2152, 791, 888, 1910, 271, 2678, 508, 1249, 1457, 424, 2188, 894, 1040, 1400, 2629, 2788, 258, 1588, 1763, 1764, 1292, 409, 2143, 285, 1618, 2693, 207, 240, 1544, 1567, 486, 574, 1349, 1580, 818, 2493, 2673, 1037, 1342, 2403, 2596, 2181, 133, 2220, 1519, 1773, 2326, 1541, 2407, 2274, 1724, 2518, 999, 1610, 2345, 1463, 856, 437, 2443, 1980, 2091, 1369, 230, 1341, 2114, 2781, 1711, 771, 1460, 1177, 2720, 136, 2106, 415, 112, 1825, 776, 1528, 381, 2321, 1959, 439, 1701, 2359, 1186, 375, 1501, 2440, 1542, 2033, 2036, 2059, 265, 2401, 2191, 302, 991, 723, 1644, 809, 425, 879, 1436, 1784, 1862, 1480, 2071, 2132, 1802, 1016, 503, 812, 1165, 1727, 1452, 1538, 1878, 2229, 765, 272, 1226, 1265, 2612, 1935, 44, 2544, 2058, 1829, 1416, 2588, 1529, 307, 1364, 974, 2186, 120, 923, 350, 1422, 183, 653, 1847, 1250, 1649, 647, 2468, 2474, 2261, 2169, 2551, 2066, 1526, 491, 1918, 1998, 2640, 1469, 1664, 1471, 87, 1401, 561, 1687, 1035, 379, 2638, 2177, 850, 1873, 2575, 548, 1203, 2057, 1731, 885, 2008, 2157, 644, 802, 2428, 2019, 1466, 458, 2676, 2278, 1704, 2525, 461, 1943, 692, 1665, 1403, 2750, 2253, 1611, 1477, 1725, 1543, 431, 877, 2089, 1222, 954, 1577, 890, 1814, 1859, 651, 512, 1209, 2630, 2222, 1022, 1566, 353, 1546, 2594, 843, 1274, 167, 1533, 1402, 780, 251, 2704, 2012, 1887, 2319, 1431, 632, 331, 13, 1373, 1184, 1962, 973, 124, 1686, 1256, 1045, 1840, 1999, 1600, 1830, 391, 30, 806, 1920, 842, 766, 1272, 2295, 163, 367, 393, 2763, 2130, 2608, 1020, 1622, 2406, 2699, 406, 1765, 768, 2543, 2237, 1534, 1492, 2390, 1326, 421, 2793, 1050, 507, 1681, 1626, 1382, 1134, 2187, 2328, 2715, 457, 2701, 680, 1366, 1121, 1210, 315, 146, 1759, 1503, 808, 1944, 529, 1300, 1299, 2027, 2794, 1609, 524, 1391, 1801, 1163, 2700, 237, 2117, 2182, 2046, 1302, 1213, 2067, 1251, 2691, 1432, 2384, 2433, 1410, 308, 606, 284, 2490, 1806, 788, 1000, 1451, 1741, 260, 739, 1068, 562, 2142, 1848, 978, 286, 665, 1493, 2347, 73, 98, 325, 1172, 1985, 1545, 58, 299, 172, 1490, 746, 2710, 1668, 305, 1479, 609, 2254, 2416, 1124, 49, 2538, 728, 1936, 408, 1937, 1591, 1692, 1990, 1011, 897, 33, 1803, 1119, 2737, 1033, 123, 703, 1970, 2065, 932, 570, 53, 394, 1396, 1552, 971, 2549, 1902, 2092, 2022, 1253, 1498, 336, 2806, 2174, 2725, 1852, 499, 509, 1038, 2214, 2628, 2288, 1211, 1386, 1407, 2419, 2031, 2112, 2327, 2424, 657, 513, 2322, 1720, 655, 2291, 2061, 1928, 447, 1293, 899, 1638, 2333, 1929, 2185, 68, 1562, 926, 2044, 2586, 2331, 2011, 1103, 2062, 1625, 1275, 1619, 433, 2267, 811, 581, 964, 1906, 1879, 1555, 322, 2313, 297, 1071, 946, 196, 2320, 2709, 1004, 1779, 2213, 280, 332, 1002, 1908, 782, 1904, 1760, 2465, 1524, 993, 330, 327, 824, 1620, 340, 2083, 951, 178, 2370, 906, 1271, 236, 1766, 233, 953, 1749, 55, 1001, 781, 206, 712, 1009, 2429, 795, 1557, 1629, 454, 1277, 1877, 1628, 2030, 1414, 1181, 241, 966, 2339, 1078, 2453, 617, 773, 2451, 169, 2601, 1450, 1596, 346, 1225, 205, 1476, 2189, 1052, 1623, 2248, 1055, 656, 344, 2584, 203, 1769, 2792, 204, 1927, 460, 1682, 2415, 1508, 1914, 1762, 290, 1523, 103, 1831, 2338, 639, 2302, 920, 1127, 1120, 1554, 2249, 1614, 174, 1872, 2116, 2190, 848, 1897, 181, 392, 1923, 786, 1206, 1598, 2417, 1287, 2686, 1106, 2669, 1374, 1417, 1327, 2703, 1820, 1800, 1813, 772, 453, 1669, 1513, 498, 2289, 1517, 1474, 2432, 303, 1511, 1270, 2651, 1485, 2546, 1505, 2661, 840, 729, 2146, 721, 2796, 762, 1899, 868, 2392, 2803, 1793, 608, 1950, 2568, 1494, 1267, 732, 2449, 2548, 1283, 1028, 1176, 2264, 1070, 2400, 2147, 1634, 1030, 1603, 1658, 737, 1680, 2712, 2682, 2350, 171, 2717, 63, 944, 1461, 943, 2455, 510, 1683, 2102, 1992, 119, 1606, 572, 642, 633, 1361, 1892, 32, 147, 2605, 2032, 1063, 710, 702, 2399, 893, 2151, 226, 882, 2334, 1319, 1141, 2567, 2477, 150, 2641, 1602, 2396, 113, 2015, 1329, 1504, 1031, 1220, 714, 678, 67, 2010, 352, 719, 829, 2421, 16, 2642, 1991, 1394, 2597, 1042, 2780, 1323, 22, 1295, 671, 333, 1890, 2124, 1073, 1061, 1012, 1931, 2624, 1915, 1343, 496, 2487, 1162, 2233, 2312, 563, 1025, 832, 1340, 417, 228, 96, 1098, 2574, 1710, 1008, 1961, 933, 2644, 1148, 1371, 1290, 2096, 2368, 2024, 397, 1549, 470, 1236, 2494, 1057, 2731, 1399, 2000, 1780, 2674, 534, 831, 1954, 1713, 1420, 2814, 875, 649, 861, 2481, 1087, 1199, 1069, 2800, 2672, 2479, 749, 1967, 2626, 1736, 1898, 1986, 2080, 1191, 874, 2133, 1161, 370, 924, 2617, 1488, 2409, 1515, 1782, 2208, 2070, 377, 1587, 243, 518, 194, 2777, 2377, 1133, 1690, 1807, 2280, 1429, 841, 463, 777, 1951, 1881, 1334, 1630, 544, 1389, 607, 2342, 876, 694, 631, 1066, 376, 1168, 2565, 436, 450, 1254, 1558, 451, 2491, 922, 374, 2582, 519, 2413, 755, 763, 2375, 1234, 2408, 2064, 267, 2276, 553, 1875, 2028, 2273, 235, 1281, 1109, 917, 2356, 2426, 1398, 715, 2591, 2664, 521, 50, 1650, 2221, 851, 37, 1363, 2343, 1808, 1252, 1631, 116, 2360, 2270, 803, 1817, 2101, 2366, 191, 1737, 1707, 442, 2603, 343, 1136, 1155, 495, 603, 931, 2236, 774, 1496, 2436, 2540, 2014, 1122, 56, 1439, 1088, 282, 1729, 1916, 1581, 1691, 2364, 326, 2154, 1229, 1453, 2367, 2283, 1175, 1653, 1509, 949, 2263, 1775, 1805, 1309, 579, 11, 2535, 1093, 2052, 39, 2223, 17, 1296, 896, 1697, 85, 209, 1291, 541, 2665, 623, 1041, 2721, 615, 186, 2325, 2711, 1194, 1755, 1662, 2783, 99, 484, 986, 2643, 1643, 276, 998, 1110, 320, 1699, 1601, 2105, 1224, 117, 1170, 373, 2542, 1717, 2607, 1437, 215, 1306, 195, 1895, 1739, 1128, 1217, 161, 2109, 2527, 19, 2040, 2697, 145, 329, 1968, 1874, 713, 1232, 1652, 42, 2467, 787, 100, 449, 476, 625, 1285, 2545, 822, 1324, 1360, 682, 2685, 371, 177, 1464, 2369, 2769, 1483, 1586, 2009, 1563, 1258, 1456, 551, 783, 821, 1164, 1491, 404, 1024, 1445, 1362, 1248, 423, 1260, 2354, 1174, 576, 1995, 650, 1994, 1198, 2410, 57, 2656, 18, 1987, 1758, 835, 743, 2666, 1795, 1344, 1728, 1359, 1356, 1702, 248, 837, 1376, 629, 46, 2616, 1969, 2430, 1917, 1108, 2159, 2176, 2394], 'geek_city': [101280100, 101020100, 101210100, 101280600, 101010100, 101110100, 101270100, 101190400, 101200100, 101280500, 101030100, 101230200, 101281200, 101280800, 101240700, 101250500, 101040100, 101250300, 101300100, 101210600, 101281000, 101300300, 101050800, 101190100, 101120200, 101240100, 101190700, 101100100, 101221600, 101281700, 101271700, 101281600, 101210400, 101260100, 101180100, 101150100, 101160900, 101070200, 101250100, 101110200, 101221400, 101210900, 101210500, 101270500, 101220100, 101190200, 101060900, 101180900, 101271800, 101280400, 101120500, 101210200, 101290100, 101120900, 101050100, 101110800, 101251400, 101180300, 101280700, 101210700, 101100500, 101090600, 101070100, 101190900, 101090200, 101190500, 101280300, 101090100, 101200700, 101281300, 101080100, 101270400, 101240800, 101120800, 101180200, 101091100, 101100800, 101190600, 101181700, 101161100, 101110400, 101090300, 101100200, 101170400, 101191300, 101300500, 101271300, 101120100, 101190300, 101210300, 101240200, 101282100, 101250400, 101190800, 101230100, 101230500, 101120300, 101160100, 101290200, 101060100, 101050200, 101220300, 101090500, 101230900, 101120600, 101090400, 101130100, 101310100, 101120700, 101191100, 101170100, 101260200, 101100400, 101250600, 101230600, 101230700, 101220800, 101230300, 101251200, 101090800, 101251000, 101070300, 101270300, 101060700, 101240500, 101220600, 101291600, 101191000, 101230400, 101080200, 101080600, 101100700, 101220200, 101201000, 101200900, 101110900, 101180700, 101271000, 101090900, 101260700, 101240300, 101180600, 101211000, 101100300, 101120400, 101301300, 101210800, 101220900, 101221000, 101180400, 101130300, 101201300, 101271200, 101140100, 101090700, 101050300, 101071300, 101270700, 101100900, 101240900, 101160300, 101191200, 101121200, 101281100, 101200200, 101091000, 101291200, 101070700, 101250700, 101240600, 101241100, 101282000, 101220700, 101070800, 101300400, 101211100, 101281900, 101051100, 101260400, 101121300, 101060300, 101251300, 101121400, 101070500, 101121000, 101301000, 101301200, 101060200, 101180500, 101200800, 101260300, 101270600, 101110500, 101310200, 101280200, 101100600, 101280900, 101181100, 101241000, 101180800, 101200500, 101271400, 101271600, 101250800, 101131400, 101291100, 101260600, 101121100, 101181300, 101181400, 101281800, 101300900, 101160200, 101271100, 101111000, 101250900, 101290900, 101250200, 101200600, 101181600, 101110700, 101270800, 101080800, 101260500, 101181500, 101221200, 101201400, 101260900, 101200400, 101181000, 101281500, 101300700, 101071400, 101080700, 101121700, 101080500, 101220500, 101230800, 101121500, 101240400, 101160400, 101200300, 101290400, 101201200, 101110300, 101271500, 101080400, 101070400, 101071000, 101050400, 101081100, 101320300, 101260800, 101170500, 101070600, 101160500, 101201100, 101201600, 101060800, 101301400, 101051300, 101251100, 101270900, 101221300, 101071200, 101310400, 101330100, 101300600, 101290700, 101220400, 101070900, 101221100, 101101100, 101281400, 101160600, 101050600, 101131000, 101101000, 101081200, 101301100, 101130600, 101060500, 101311200, 101110600, 101181200, 101050500, 101300800, 101290300, 101150600, 101221500, 101071100, 101130500, 101150500, 101080900, 101060400, 101080300], 'geek_overseas_tag': [0, 1], 'boss_city': [101280100, 101020100, 101210100, 101280600, 101010100, 101110100, 101270100, 101190400, 101200100, 101030100, 101190100, 101290100, 101040100, 101180100, 101220100, 101100100, 101250100, 101090100, 101070100, 101120100, 101230200, 101190800, 101120200, 101280800, 101230100, 101260100, 101091100, 101230500, 101281700, 101300100, 101210400, 101240100, 101281600, 101190200, 101050100, 101160100, 101280700, 101210900, 101090200, 101120900, 101210700, 101191100, 101210300, 101060100, 101220300, 101090500, 101300300, 101120600, 101210500, 101130100, 101310100, 101120300, 101210200, 101120700, 101280300, 101190500, 101080100, 101070200, 101120500, 101180900, 101270400, 101170100, 101260200, 101090600, 101190300, 101240700, 101120800, 101190600, 101250300, 101110200, 101191000, 101210600, 101080200, 101190700, 101200900, 101190900, 101180300, 101060200, 101220800, 101091000, 101240200, 101121300, 101240300, 101250400, 101300500, 101310200, 101221200, 101280500, 101121200, 101090300, 101181000, 101150100, 101120400, 101180700, 101180200, 101281300, 101281100, 101090900, 101100200, 101220200, 101090700, 101100700, 101240900, 101121100, 101191200, 101191300, 101181500, 101121000, 101281000, 101200600, 101230400, 101230600, 101180400, 101180800, 101121500, 101090800, 101160400, 101100400, 101110900, 101250200, 101271700, 101180600, 101121700, 101181600, 101181100, 101221400, 101250600, 101050800, 101080500, 101200200, 101110300, 101290200, 101251000, 101201000, 101220500, 101100800, 101282000, 101181300, 101200400, 101270500, 101100500, 101271400, 101270900, 101281900, 101071200, 101260700, 101110800, 101281500, 101200800, 101280900, 101270600, 101050200, 101271100, 101201300, 101071300, 101221000, 101211000, 101230300, 101240400, 101181400, 101230800, 101200500, 101180500, 101251200, 101070300, 101271500, 101240500, 101291600, 101090400, 101110500, 101220600, 101220700, 101271800, 101100600, 101271000, 101211100, 101080600, 101281200, 101070700, 101060300, 101240600, 101260600, 101290700, 101250900, 101070400, 101121400, 101220400, 101290900, 101071400, 101282100, 101230700, 101250800, 101050300, 101300900, 101210800, 101250700, 101220900, 101071000, 101260500, 101250500, 101110400, 101300600, 101070800, 101070900, 101181700, 101240800, 101270700, 101070600, 101301000, 101221100, 101050400, 101230900, 101280200, 101160900, 101301300, 101110700, 101271200, 101251300, 101101100, 101201100, 101221600, 101221300, 101100300, 101280400, 101200700, 101080800, 101270300, 101201600, 101281800, 101201200, 101260300, 101290400, 101070500, 101300700, 101140100], 'boss_cmp_level': [0, 6, 12, 8, 9, 7, 3, 11, 10, 5, 4, 1, 2], 'geek_cmp_level': [12, 9, 11, 4, 7, 0, 2, 5, 6, 8, 10, 3, 1], 'boss_position': [130202, 220205, 130203, 170605, 170601, 170610, 120607, 170602, 120605, 170606, 120602, 170611, 170609, 220203, 170617, 170102, 120501, 170201, 170204, 170205, 170616, 120601, 170108, 170607, 130204, 170603, 140605, 140601, 170612, 170101, 120610, 140604, 170104, 190301, 190310, 210606, 190601, 190309, 190103, 190306, 190503, 190602, 190311, 190603, 190204, 190201, 190305, 190701, 190302, 190705, 190202, 190101, 190203, 190304, 190105, 210605, 150301, 180303, 180118, 180503, 180406, 180115, 180107, 150302, 180405, 180201, 180502, 180119, 180101, 180506, 180112, 180104, 150304, 150305, 180505, 150306, 180301, 180103, 180106, 180504, 150307, 180102, 110101, 110104, 110107, 110108, 180501, 110302, 110103, 110105, 120401, 110106, 150412, 150414, 130403, 150101, 150403, 160102, 130405, 130306, 140402, 130402, 160104, 280201, 250106, 140401, 150401, 100701, 140403, 150204, 160101, 150411, 130401, 150108, 150407, 150309, 150409, 130404, 120403, 150410, 120402, 100705, 100702, 250101, 160103, 140407, 150308, 240110, 150209, 140406, 110304, 140405, 110303, 150408, 260402, 100703, 100707, 240401, 120404, 150507, 150413, 130307, 150406, 140404, 220505, 300102, 100706, 240402, 220502, 210106, 150404, 210501, 180113, 260401, 110102, 220503, 140302, 140310, 140309, 140301, 140314, 140311, 140304, 140305, 140303, 140306, 140315, 140307, 140313, 140308, 270101, 270201, 120117, 100901, 120119, 100511, 120107, 100603, 100301, 100802, 101301, 100704, 100114, 120106, 100103, 100209, 100801, 100512, 100101, 100106, 100405, 120116, 120101, 100508, 100507, 100305, 100102, 100604, 101201, 100107, 100201, 100506, 100401, 100109, 100403, 100105, 100306, 100303, 100402, 120118, 100202, 100404, 100902, 120102, 101303, 100302, 100904, 120301, 120120, 100509, 100116, 100407, 260102, 101302, 100607, 100210, 100601, 100606, 101202, 100304, 100406, 100205, 100108, 140108, 100605, 100804, 100104, 120201, 120105, 100203, 120114, 100409, 120121, 100309, 120110, 100307, 100806, 120112, 120111, 101101, 101304, 100120, 100208, 101001, 120113, 120303, 120115, 100408, 100118, 101307, 100121, 120109, 100308, 100122, 100117, 100115, 120304, 100602, 100808, 100803, 120108, 101004, 120302, 101014, 100119, 100805, 101003, 100811, 100113, 101007, 101002, 100810, 120203, 120103, 120104, 101011, 100816, 100807, 101305, 100513, 101005, 101008, 101012, 101306, 100812, 101015, 170203, 150102, 130303, 150104, 150201, 150202, 290202, 130305, 290303, 150205, 130308, 290302, 290103, 150506, 130301, 150503, 150203, 150601, 220301, 130309, 260301, 150106, 150207, 260302, 130302, 150105, 130304, 150504, 260305, 150107, 150103, 260303, 260201, 260202, 150502, 260307, 150109, 260308, 150110, 260304, 150505, 260306, 260403, 180302, 130117, 130101, 170301, 140106, 130118, 140109, 130102, 170304, 140107, 130113, 130111, 130104, 170305, 140608, 170306, 130112, 140203, 140205, 140111, 140102, 130110, 140201, 140105, 140110, 140505, 130106, 170302, 140101, 140112, 140506, 130103, 170208, 130105, 170406, 170405, 140503, 140204, 170403, 130116, 140206, 120604, 170615, 170103, 120603, 130206, 220206, 170202, 170614, 170209, 140602, 220207, 120608, 120606, 170619, 170106, 170105, 170608, 170618, 170107, 170207, 170210, 170604, 140603, 130201, 130205, 140609, 140607, 170211, 140610, 190312, 190303, 190307, 190706, 190801, 190313, 190504, 190308, 190704, 190106, 190102, 210603, 190411, 190707, 190401, 190702, 210601, 190104, 190502, 210602, 190501, 190408, 190107, 180701, 180801, 180403, 180105, 180601, 180703, 150402, 150303, 180116, 180401, 180304, 180114, 180802, 180402, 180404, 180203, 180204, 180110, 180108, 180702, 180111, 180117, 180109, 260101, 260109, 140317, 140316, 230201, 130119, 160201, 210506, 220402, 140312, 140501, 230202, 140504, 170401, 170404, 250203, 240204, 250102, 250202, 250103, 240205, 220209, 250201, 240103, 250107, 240304, 220208, 240106, 250204, 220212, 240303, 220211, 240206, 220401, 240301, 250104, 150208, 290102, 180202, 130109, 140104, 130501, 140103, 140701, 130107, 130108, 170303, 140502, 130115, 140202, 130114, 170402, 220501, 100809, 100814, 140611, 120204, 120405, 120406, 120408, 100903, 120407, 100110, 120202], 'geek_apply_status': [1, 0, 2, 3, -1], 'geek_degree': [203, 202, 201, 200, 204, 205, 199], 'job_workyears': [101, 104, 105, 106, 103, 102, 108, 107], 'geek_school_level': [11, 15, 10, 1, 6, 9, -1, 7, 8, 0, 4, 2, 3, 5, 14, 12, 13], 'geek_position': [130202, 220205, 130203, 170605, 170601, 170610, 120607, 170602, 120605, 170606, 120501, 130111, 170611, 170609, 220203, 170617, 170102, 120602, 170201, 170204, 170108, 170205, 170616, 120601, 170607, 130204, 170603, 190301, 140605, 140601, 120116, 210405, 130102, 100205, 120106, 170305, 140102, 110101, 170612, 120110, 150201, 300301, 170101, 130104, 120105, 120610, 130117, 170501, 190102, 140107, 210505, 170103, 280101, 140604, 140314, 140307, 130118, 290302, 100603, 170104, 230104, 140202, 140201, 120604, 120121, 130299, 130106, 120119, 180303, 140203, 130303, 240111, 100406, 170615, 101201, 140104, 120117, 150412, 140301, 270101, 170208, 170604, 260301, 100403, 130405, 120102, 130305, 120101, 140206, 190310, 120113, 130199, 210201, 290104, 220209, 130105, 130402, 130101, 120603, 170306, 100401, 120108, 170203, 110104, 150104, 150202, 190305, 200101, 140109, 170304, 150109, 140303, 140308, 290299, 140304, 210606, 140311, 260106, 190312, 120107, 280103, 290202, 270102, 220301, 120304, 150204, 190105, 190101, 170619, 140309, 250203, 250104, 130107, 140505, 130108, 110108, 170406, 170106, 290101, 110107, 220212, 190601, 190309, 210803, 190603, 170107, 180405, 120109, 220206, 190706, 290105, 140101, 280202, 190302, 240301, 260304, 120608, 180801, 140205, 130119, 180101, 170608, 150205, 260101, 250107, 140204, 240101, 270103, 300108, 180802, 150411, 120120, 170303, 100604, 270201, 100309, 130109, 170618, 190203, 180506, 140313, 130306, 250103, 130114, 140108, 190199, 150414, 260103, 120401, 220211, 170302, 100702, 140506, 190204, 160201, 240103, 300307, 290102, 120118, 140305, 170699, 190202, 101305, 150301, 130201, 170301, 190103, 190705, 190306, 190503, 190602, 190311, 190801, 190201, 190701, 101014, 101001, 190304, 150302, 150105, 130120, 100513, 160104, 260110, 140302, 140310, 110103, 210401, 180703, 190307, 180402, 150102, 100511, 280102, 280104, 210502, 150207, 140609, 190104, 180501, 150403, 150410, 250202, 300601, 140399, 260403, 140111, 210303, 190308, 290106, 210108, 100901, 140317, 210609, 260303, 150306, 130110, 190106, 260203, 140401, 150307, 180118, 180107, 100601, 230201, 140402, 130308, 230203, 100301, 290206, 150399, 210605, 140315, 130302, 190107, 100803, 290201, 170403, 300105, 150107, 130115, 150208, 100802, 170404, 190704, 290303, 150413, 290304, 100602, 260306, 180503, 180406, 180115, 180502, 180201, 180119, 150309, 180112, 180104, 150304, 150305, 130309, 180301, 180203, 180103, 180106, 180504, 180116, 180505, 180105, 180114, 150402, 180111, 180109, 150303, 180601, 160102, 290203, 240205, 180113, 180108, 180102, 150308, 300501, 180499, 220401, 180117, 180403, 220201, 110302, 110105, 110304, 100307, 110106, 120303, 130401, 120199, 130103, 240102, 110303, 100203, 120407, 100605, 130403, 150101, 280201, 250106, 150401, 180701, 100701, 140403, 160101, 160199, 150108, 150407, 130404, 120403, 140603, 150409, 100101, 120402, 100705, 250101, 100103, 160103, 140407, 240110, 150209, 140406, 180401, 130304, 140405, 150408, 140306, 300201, 100707, 260402, 100703, 240401, 240304, 120404, 180204, 250102, 230210, 100106, 150103, 150507, 130301, 100102, 260104, 130307, 150406, 150106, 260107, 230206, 220505, 300102, 130112, 140312, 100706, 240402, 220502, 100512, 260109, 140404, 210106, 220204, 150404, 101202, 170405, 170614, 100509, 210501, 140112, 220303, 180404, 260401, 210103, 110102, 240204, 100407, 110401, 240104, 150499, 250204, 280301, 130113, 220503, 100409, 100607, 300107, 140113, 290103, 210506, 220403, 100507, 300206, 300628, 140114, 240201, 290305, 240303, 240199, 240105, 210503, 190799, 170207, 140103, 101304, 240108, 290301, 290210, 300104, 260201, 230202, 140110, 240106, 290204, 220102, 210699, 220302, 230209, 260108, 290205, 220208, 101402, 220101, 260302, 300623, 240302, 120301, 140316, 210115, 300606, 300314, 300613, 100801, 250201, 230205, 230204, 180899, 100302, 290307, 240115, 150503, 190502, 230207, 140501, 100405, 100904, 101302, 290401, 130116, 140105, 300304, 210602, 170209, 300604, 240206, 300305, 100606, 220103, 101301, 100109, 290207, 230208, 290211, 190504, 180199, 101307, 210305, 240113, 190313, 300311, 300405, 250199, 210104, 300207, 150110, 210608, 210504, 210302, 220207, 150502, 100202, 230106, 260202, 210701, 100121, 140503, 100508, 280105, 101013, 300618, 250299, 190707, 280199, 210102, 210112, 210109, 240202, 170211, 120201, 101401, 140299, 101011, 100104, 290306, 101306, 290199, 300610, 220202, 230301, 300303, 300406, 300509, 100105, 210603, 120104, 190702, 150601, 100120, 100299, 300310, 300103, 100117, 180110, 300106, 101101, 260105, 240107, 260102, 100122, 120103, 240117, 120302, 130205, 101004, 210802, 140106, 100506, 100807, 210122, 150203, 290208, 120114, 210304, 100902, 100118, 100308, 190501, 130501, 210202, 100303, 140504, 101005, 170299, 230212, 101303, 210117, 180202, 300302, 100107, 210402, 250301, 100704, 100114, 100209, 100305, 100201, 100306, 100404, 100402, 100116, 100210, 100304, 120115, 100108, 100804, 100208, 100110, 240114, 100115, 101003, 190402, 100903, 101399, 190401, 120112, 190403, 100999, 120111, 100814, 100806, 100111, 100805, 101008, 100808, 100119, 100811, 190408, 101018, 101012, 100113, 120203, 230105, 100816, 101403, 100408, 101015, 100810, 100809, 101002, 101017, 101016, 300306, 100206, 300502, 190410, 210111, 190407, 190406, 120202, 101009, 230107, 101006, 300308, 101007, 140602, 101404, 300315, 230101, 190405, 300499, 170202, 190404, 100204, 100112, 170402, 100813, 140608, 170399, 300605, 300402, 300403, 190411, 300401, 300204, 120405, 100599, 100812, 210404, 230299, 290209, 210607, 150506, 150504, 260305, 260307, 300602, 260308, 180599, 180302, 220601, 190299, 190303, 150505, 210601, 300101, 210120, 220402, 140607, 210499, 210101, 210121, 210801, 100199, 240109, 170105, 120606, 130206, 170613, 230110, 230102, 300510, 120500, 170210, 300508, 170199, 140610, 300608, 210599, 140611, 300309, 190703, 210403, 280299, 300619, 220199, 210604, 230108, 180304, 180702, 240501, 240112, 220501, 240203, 210105, 240399, 300503, 300701, 300612, 300624, 300203, 300625, 210119, 300603, 170499, 140701, 220399, 300617, 240116, 300616, 140502, 210116, 290399, 210107, 170401, 250105, 240299, 260501, 200100, 101299, 300404, 101010, 300205, 220210, 230109, 300313, 210118, 300507, 300504, 140499, 120499, 300199, 210113, 300399, 210199, 300611, 220599, 300609, 300626, 130499, 120406, 120408, 210114, 300505, 230103, 210899, 220504], 'geek_workyears': [7, 5, 3, 9, 2, 4, 1, 6, 0, 8, 19, 14, 13, 10, 11, 12, 18, 15, 17, 16, 22, 20, 28, 24, 23, 30, 29, 27, 21, 26, 25], 'boss_title_type': [3, 1, 2], 'job_overseas_tag': [0, 1], 'job_degree': [202, 203, 199, 201, 200, 204, 205], 'geek_gender': [0, 1, 2], 'geek_degree_new': [19900, 20000, 20100, 20201, 20202, 20203, 20301, 20302, 20303, 20304, 20400, 20500], 'geek_rev_work_year': [7, 5, 3, 9, 2, 4, 1, 6, 0, 8, 19, 14, 13, 10, 11, 12, 18, 15, 17, 16, 22, 20, 28, 24, 23, 30, 29, 27, 21, 26, 25], 'geek_school_type1': [10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 'geek_school_type2': [0, 1, 2, 3, 4, 5, 6], 'boss_l1code': [100000, 110000, 120000, 130000, 140000, 150000, 160000, 170000, 180000, 190000, 200000, 210000, 220000, 230000, 240000, 250000, 260000, 270000, 280000, 290000, 300000, 310000], 'boss_l2code': [100000, 100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200, 101300, 101400, 110000, 110100, 110300, 110400, 120000, 120100, 120200, 120300, 120400, 120500, 120600, 130000, 130100, 130200, 130300, 130400, 130500, 140000, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 150000, 150100, 150200, 150300, 150400, 150500, 150600, 160000, 160100, 160200, 170000, 170100, 170200, 170300, 170400, 170500, 170600, 180000, 180100, 180200, 180300, 180400, 180500, 180600, 180700, 180800, 190000, 190100, 190200, 190300, 190400, 190500, 190600, 190700, 190800, 200000, 200100, 210000, 210100, 210200, 210300, 210400, 210500, 210600, 210700, 210800, 210900, 220000, 220100, 220200, 220300, 220400, 220500, 220600, 230000, 230100, 230200, 230300, 230400, 240000, 240100, 240200, 240300, 240400, 240500, 250000, 250100, 250200, 250300, 260000, 260100, 260200, 260300, 260400, 260500, 270000, 270100, 270200, 280000, 280100, 280200, 280300, 290000, 290100, 290200, 290300, 290400, 290500, 290700, 300000, 300100, 300200, 300300, 300400, 300500, 300600, 300700, 310000], 'geek_l1code': [100000, 110000, 120000, 130000, 140000, 150000, 160000, 170000, 180000, 190000, 200000, 210000, 220000, 230000, 240000, 250000, 260000, 270000, 280000, 290000, 300000, 310000], 'geek_l2code': [100000, 100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200, 101300, 101400, 110000, 110100, 110300, 110400, 120000, 120100, 120200, 120300, 120400, 120500, 120600, 130000, 130100, 130200, 130300, 130400, 130500, 140000, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 150000, 150100, 150200, 150300, 150400, 150500, 150600, 160000, 160100, 160200, 170000, 170100, 170200, 170300, 170400, 170500, 170600, 180000, 180100, 180200, 180300, 180400, 180500, 180600, 180700, 180800, 190000, 190100, 190200, 190300, 190400, 190500, 190600, 190700, 190800, 200000, 200100, 210000, 210100, 210200, 210300, 210400, 210500, 210600, 210700, 210800, 210900, 220000, 220100, 220200, 220300, 220400, 220500, 220600, 230000, 230100, 230200, 230300, 230400, 240000, 240100, 240200, 240300, 240400, 240500, 250000, 250100, 250200, 250300, 260000, 260100, 260200, 260300, 260400, 260500, 270000, 270100, 270200, 280000, 280100, 280200, 280300, 290000, 290100, 290200, 290300, 290400, 290500, 290700, 300000, 300100, 300200, 300300, 300400, 300500, 300600, 300700, 310000], 'geek_age': [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], 'boss_comp_scale': [301, 302, 303, 304, 305, 306]}

def get_cate_fea_dict():
    cate_fea_dict['b2g_salary_recent10'] = [i for i in range(1, 100)]
    cate_fea_dict['b2g_workyears_recent10'] = [i for i in range(0, 30)]
    cate_fea_dict['b2g_gender_recent10'] = cate_fea_dict['geek_gender']
    cate_fea_dict['b2g_apply_status_recent10'] = cate_fea_dict['geek_apply_status']
    cate_fea_dict['b2g_cmp_level_recent10'] = cate_fea_dict['geek_cmp_level']
    cate_fea_dict['b2g_school_level_recent10'] = cate_fea_dict['geek_school_level']
#    cate_fea_dict['b2g_degree_recent10'] = cate_fea_dict['geek_degree']
    cate_fea_dict['b2g_degree_recent10'] = cate_fea_dict['geek_degree_new']
    cate_fea_dict['b2g_school_type1_recent10'] = cate_fea_dict['geek_school_type1']
    cate_fea_dict['b2g_school_type2_recent10'] = cate_fea_dict['geek_school_type2']
    cate_fea_dict['geek_work_position_recent1'] = cate_fea_dict['geek_position']
    cate_fea_dict['geek_work_position_recent2'] = cate_fea_dict['geek_position']
    cate_fea_dict['geek_work_position_recent3'] = cate_fea_dict['geek_position']
    cate_fea_dict['b2g_salary_recent5'] = [i for i in range(1, 100)]
    cate_fea_dict['b2g_workyears_recent5'] = [i for i in range(0, 30)]
    cate_fea_dict['b2g_gender_recent5'] = cate_fea_dict['geek_gender']
    cate_fea_dict['b2g_apply_status_recent5'] = cate_fea_dict['geek_apply_status']
    cate_fea_dict['b2g_cmp_level_recent5'] = cate_fea_dict['geek_cmp_level']
    cate_fea_dict['b2g_school_level_recent5'] = cate_fea_dict['geek_school_level']
    cate_fea_dict['b2g_degree_recent5'] = cate_fea_dict['geek_degree_new']
    cate_fea_dict['b2g_school_type1_recent5'] = cate_fea_dict['geek_school_type1']
    cate_fea_dict['b2g_school_type2_recent5'] = cate_fea_dict['geek_school_type2']
    cate_fea_dict['geek_latest_work_position_id'] = cate_fea_dict['geek_position']
    cate_fea_dict['geek_latest_work_cmp_kw_id'] = [i for i in range(1, 389010)]
    cate_fea_dict['boss_cmp_kw_id'] = [i for i in range(1, 389010)]
    cate_fea_dict['b2g_revage_recent10'] = cate_fea_dict['geek_age']
    cate_fea_dict['b2g_position_recent10'] = cate_fea_dict['geek_position']
    cate_fea_dict['geek_rev_age'] = cate_fea_dict['geek_age']
    for fea, cuts in cate_fea_dict.items():
        if -2 not in cuts:
            cate_fea_dict[fea].append(-2)
        if -3 not in cuts:
            cate_fea_dict[fea].append(-3)
    return cate_fea_dict



def get_fea_code():
    fea_code = {'geek_position': '118', 'geek_city': '120', 'exp_id': '121', 'boss_position': '125', 'boss_city': '128', 'job_workyears': '130', 'job_degree': '171', 'jl': '174', 'jh': '177', 'geek_workyears': '179', 'geek_school_level': '191', 'geek_min_chat_tdiff': '199', 'geek_min_active_tdiff': '201', 'geek_gender': '204', 'geek_degree': '210', 'geek_cmp_level': '212', 'geek_chat_s2_num_1d7': '215', 'geek_apply_status': '217', 'g2b_workyears_gof': '852', 'g2b_title_type_gof': '853', 'g2b_stage_gof': '854', 'g2b_scale_gof': '855', 'g2b_salary_gof': '856', 'g2b_cmp_level_gof': '857', 'exp_pas_addf_num_24h': '258', 'exp_det_num_24h': '282', 'el': '289', 'eh': '292', 'b2g_workyears_rel_match': '324', 'b2g_workyears_match': '325', 'b2g_workyears_gof': '841', 'b2g_static_rel_match': '329', 'b2g_static_match': '330', 'b2g_school_type2_gof': '842', 'b2g_school_type1_gof': '843', 'b2g_school_level_gof': '844', 'b2g_salary_rel_match': '336', 'b2g_salary_match': '337', 'b2g_salary_gof': '845', 'b2g_pastpos_addf_rate': '340', 'b2g_gender_gof': '846', 'b2g_fresh_graduate_gof': '847', 'b2g_degree_rel_match': '345', 'b2g_degree_match': '346', 'b2g_degree_gof': '848', 'b2g_apply_status_gof': '849', 'boss_title_type': '355', 'geek_fresh_graduate': '367', 'school_type_1': '372', 'school_type_2': '373', 'business_id': '379', 'district_code': '380', 'industry': '381', 'boss_comp_scale': '382', 'stage': '383', 'black_geek': '384', 'black_boss': '385', 'subway_line_id': '386', 'subway_station_id': '387', 'boss_cmp_level': '391', 'b2g_cmp_level_gof': '850', 'b2g_pos_workyears_major_match': '395', 'b2g_school_gof': '398', 'school_code': '399', 'geek_major': '400', 'geek_last_work_skill': '401', 'job_language_skill': '403', 'geek_language_skill': '404', 'b2g_position_similarity': '413', 'g2b_position_similarity': '414', 'job_register_tdiff': '418', 'exp_register_tdiff': '419', 'b2g_overseas_match': '421', 'job_overseas_tag': '422', 'geek_overseas_tag': '423', 'g2b_work_distance': '430', 'g2b_workdist_sensi': '431', 'geek_workdist_sensi': '431', 'b2g_skill_match': '461', 'b2g_title_w2v_orig_gof': '462', 'b2g_school_w2v_gof': '467', 'b2g_major_w2v_gof': '468', 'b2g_pos_skill_match': '480', 'b2g_pos_major_match': '481', 'geek_degree_new': '489', 'g2b_w2v_pref_gof': '495', 'g2b_w2v_orig_gof': '496', 'b2g_w2v_pref_gof': '497', 'b2g_w2v_orig_gof': '498', 'b2g_work_distance': '504', 'g2b_skill_match': '505', 'g2b_title_match': '506', 'g2b_school_w2v_gof': '507', 'g2b_major_w2v_gof': '508', 'g2b_company_gof': '513', 'b2g_company_gof': '514', 'geek_simpos_workyears': '515', 'exp_f1_pas_cp_addf_rate_1d7': '516', 'b2g_resp_school_level_gof': '524', 'b2g_resp_workyears_gof': '838', 'g2b_industry_gof': '530', 'g2b_degree_gof': '859', 'g2b_pos_major_match': '607', 'g2b_position_gof': '860', 'g2b_city_gof': '861', 'g2b_position_addf_rate': '624', 'g2b_pastpos_position_similarity': '625', 'g2b_pastpos_addf_rate': '626', 'exp_min_active_tdiff': '628', 'b2g_pjenn_gof': '643', 'g2b_pjenn_gof': '644', 'b2g_cdssm_gof': '645', 'g2b_cdssm_gof': '646', 'b2g_age_gof': '839', 'b2g_position_gof': '840', 'b2g_position_addf_rate': '650', 'b2g_city_addf_rate': '651', 'b2g_pos_similarity': '652', 'b2g_pos_pastpos_similarity': '653', 'geek_addf_times_2d': '675', 'job_addf_times_2d': '710', 'job_psuccess_times_7d': '706', 'geek_paddf_pchat_rate_2d': '777', 'job_addf_success_rate_7d': '783', 'job_addf_success_times_7d': '717', 'geek_paddf_success_rate_7d': '798', 'geek_paddf_pchat_rate_7d': '797', 'geek_paddf_pchat_times_7d': '669', 'geek_paddf_success_times_7d': '668', 'boss_pview_geek_14d': '736', 'boss_view_geek_14d': '730', 'boss_paddf_success_times_2d': '687', 'boss_psuccess_times_2d': '690', 'boss_paddfchat_times_2d': '691', 'job_paddfchat_times_2d': '701', 'job_paddf_success_times_7d': '703', 'job_pdet_times_14d': '709', 'job_addf_success_times_2d': '711', 'job_addf_pchat_times_2d': '712', 'job_det_times_2d': '713', 'job_success_times_2d': '714', 'job_addf_pchat_times_7d': '718', 'job_det_times_7d': '719', 'job_success_times_7d': '720', 'geek_pview_boss_14d': '732', 'geek_view_boss_14d': '734', 'job_paddfchat_rate_2d': '756', 'job_paddf_pchat_rate_2d': '758', 'job_paddf_success_rate_2d': '759', 'boss_addf_rate_2d': '763', 'job_paddf_rate_2d': '774', 'job_success_rate_7d': '781', 'job_addf_rate_7d': '784', 'job_paddfchat_rate_7d': '785', 'job_paddf_pchat_rate_7d': '787', 'job_paddf_success_rate_7d': '788', 'job_paddf_rate_7d': '789', 'job_pdet_rate_14d': '800', 'job_addf_times_7d': '716', 'job_addf_pchat_rate_7d': '782', 'geek_det_times_7d': '684', 'geek_success_times_7d': '685', 'geek_paddf_times_7d': '667', 'geek_paddfchat_times_7d': '672', 'geek_pdet_times_2d': '662', 'geek_psuccess_rate_7d': '796', 'job_pdet_times_7d': '705', 'geek_addfchat_times_7d': '686', 'boss_pdet_times_2d': '689', 'boss_det_times_2d': '695', 'boss_addfchat_rate_2d': '760', 'boss_addf_success_times_2d': '693', 'boss_addf_success_rate_2d': '762', 'boss_paddf_success_rate_2d': '767', 'geek_rev_work_year': '433', 'b2g_airbnb_emb_gof_int': '810', 'boss_addfchat_times_2d': '696', 'boss_det_geek_14d': '731', 'boss_paddf_times_2d': '664', 'job_pdet_times_2d': '699', 'geek_addfchat_rate_7d': '790', 'boss_psuccess_rate_2d': '765', 'geek_latest_work_position_id': '534', 'boss_addf_times_2d': '692', 'boss_paddfchat_rate_2d': '764', 'boss_paddf_rate_2d': '775', 'geek_success_times_2d': '679', 'geek_success_rate_7d': '791', 'geek_paddf_rate_7d': '799', 'job_addf_success_rate_2d': '754', 'job_paddfchat_times_7d': '707', 'job_psuccess_rate_7d': '786', 'job_addf_pchat_rate_2d': '753', 'job_psuccess_times_2d': '700', 'job_psuccess_rate_2d': '757', 'boss_addf_pchat_rate_2d': '761', 'boss_addf_pchat_times_2d': '694', 'geek_addf_success_times_7d': '682', 'geek_addf_success_rate_7d': '793', 'geek_addf_success_times_2d': '676', 'geek_addf_success_rate_2d': '771', 'geek_psuccess_times_7d': '671', 'geek_psuccess_rate_2d': '776', 'geek_psuccess_times_2d': '663', 'geek_paddf_pchat_times_2d': '661', 'boss_l1code': '904', 'boss_l2code': '973', 'geek_l1code': '974', 'geek_l2code': '975', 'geek_school_type1': '372', 'geek_school_type2': '373', 'job_paddf_times_7d': '702', 'geek_addf_times_7d': '681', 'geek_pdet_times_7d': '670', 'geek_paddf_times_2d': '659', 'geek_rev_age': '977', 'geek_paddf_rate_14d': '803', 'boss_pdet_geek_14d': '737', 'geek_complete_tdiff': '750', 'geek_plist_times_14d': '722', 'job_plist_times_14d': '723', 'geek_paddf_times_14d': '673', 'geek_addfchat_times_2d': '680', 'job_addfchat_times_7d': '721', 'job_paddf_times_14d': '708'}
    tmp_code = {'b2g_workyears_recent10': '964', 'b2g_gender_recent10': '970', 'b2g_apply_status_recent10': '971', 'b2g_salary_recent10': '972', 'b2g_cmp_level_recent10': '965', 'b2g_school_level_recent10': '966', 'b2g_degree_recent10': '969', 'b2g_school_type1_recent10': '967', 'b2g_school_type2_recent10': '968', 'b2g_revage_recent10': '1127', 'b2g_position_recent10': '1128', 'b2g_paspos_recent10': '1129'}
    #tmp_code = {'b2g_workyears_recent10': '874', 'b2g_gender_recent10': '880', 'b2g_apply_status_recent10': '881', 'b2g_salary_recent10': '882', 'b2g_cmp_level_recent10': '875', 'b2g_school_level_recent10': '876', 'b2g_degree_recent10': '879', 'b2g_school_type1_recent10': '877', 'b2g_school_type2_recent10': '878', 'b2g_workyears_recent5': '977', 'b2g_gender_recent5': '978', 'b2g_apply_status_recent5': '979', 'b2g_salary_recent5': '980', 'b2g_cmp_level_recent5': '981', 'b2g_school_level_recent5': '982', 'b2g_degree_recent5': '983', 'b2g_school_type1_recent5': '984', 'b2g_school_type2_recent5': '985'}
    for k, v in tmp_code.items():
        fea_code[k] = v
    return fea_code